package system.model.request;

import common.model.enums.SysTopicIsClosedEnum;
import common.model.enums.SysTopicTypeEnum;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

/**
 * @author 米泽鹏
 * @since 2022-3-12 下午 2:33
 */
@Data
public class SaveTopicRequest {

	/**
	 * 主键
	 */
	private Long id;

	/**
	 * 用户id
	 */
	@NotNull(message = "用户id不能为空")
	private Long userId;

	/**
	 * 用户昵称
	 */
	@NotBlank(message = "用户昵称不能为空")
	private String nickname;

	/**
	 * 话题类型
	 * {@link SysTopicTypeEnum}
	 */
	@NotBlank(message = "话题类型不能为空")
	private String type;

	/**
	 * 标题
	 */
	@NotBlank(message = "标题不能为空")
	@Length(max = 100, message = "标题不能超过100个字符")
	private String title;

	/**
	 * 话题内容
	 */
	@NotBlank(message = "话题内容不能为空")
	@Length(max = 1000, message = "话题内容不能超过1000个字符")
	private String content;

	/**
	 * 话题是否已关闭
	 * {@link SysTopicIsClosedEnum}
	 */
	@NotBlank(message = "话题是否已关闭不能为空")
	@Pattern(regexp = "(^0$|^1$)", message = "话题是否已关闭只能为0或1")
	private String isClosed;

	/**
	 * 排序
	 */
	@NotNull(message = "排序不能为空")
	@Max(value = Integer.MAX_VALUE, message = "排序不能大于" + Integer.MAX_VALUE)
	@Min(value = 1, message = "排序不能小于1")
	private Integer sort;

}
